package controllers;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import model.Produto;
import dao.DaoFactory;
import dao.ProdutoDao;

@ViewScoped
@ManagedBean(name = "produtoFormController")
public class ProdutoFormController {
	private ProdutoDao produtoDao = DaoFactory.getProdutoDao();

	private Produto produto;

	@PostConstruct
	public void iniciar() {

		String id = FacesContext.getCurrentInstance().getExternalContext()
				.getRequestParameterMap().get("id");
		if (id == null) {
			produto = new Produto();
		} else {
			produto = produtoDao.findById(new Long(id));
		}
	}

	public Produto getProduto() {
		return produto;
	}

	public void salvar() {

		FacesContext ctx = FacesContext.getCurrentInstance();

		if (produto.getNome() == null
				|| produto.getNome().length() == 0) {

			ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"Informe corretamente o nome!", null));
		} else {

			produtoDao.save(produto);

			ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
					"Produto salvo com sucesso!", null));

			produto = null;

			iniciar();
		}
	}

}
